
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.4.1
  labels:
    heritage: deckhouse
    module: cloud-provider-vcd
    cluster.x-k8s.io/provider: vcd
    cluster.x-k8s.io/v1beta1: v1beta2
  name: vcdmachines.infrastructure.cluster.x-k8s.io
spec:
  group: infrastructure.cluster.x-k8s.io
  names:
    kind: VCDMachine
    listKind: VCDMachineList
    plural: vcdmachines
    singular: vcdmachine
  scope: Namespaced
  versions:
  - name: v1beta2
    schema:
      openAPIV3Schema:
        description: VCDMachine is the Schema for the vcdmachines API
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: VCDMachineSpec defines the desired state of VCDMachine
            properties:
              bootstrapped:
                description: Bootstrapped is true when the kubeadm bootstrapping has
                  been run against this machine
                type: boolean
              catalog:
                description: Catalog hosting templates
                type: string
              diskSize:
                anyOf:
                - type: integer
                - type: string
                description: DiskSize is the size, in bytes, of the disk for this
                  machine
                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                x-kubernetes-int-or-string: true
              enableNvidiaGPU:
                description: EnableNvidiaGPU is true when a VM should be created with
                  the relevant binaries installed If true, then an appropriate placement
                  policy should be set
                type: boolean
              extraOvdcNetworks:
                description: ExtraOvdcNetworks is the list of extra Ovdc Networks
                  that are mounted to machines. VCDClusterSpec.OvdcNetwork is always
                  attached regardless of this field.
                items:
                  type: string
                type: array
              placementPolicy:
                description: PlacementPolicy is the placement policy to be used on
                  this machine.
                type: string
              providerID:
                description: ProviderID will be the container name in ProviderID format
                  (vmware-cloud-director://<vm id>)
                type: string
              sizingPolicy:
                description: SizingPolicy is the sizing policy to be used on this
                  machine. If no sizing policy is specified, default sizing policy
                  will be used to create the nodes
                type: string
              storageProfile:
                description: StorageProfile is the storage profile to be used on this
                  machine
                type: string
              template:
                description: TemplatePath is the path of the template OVA that is
                  to be used
                type: string
              vmNamingTemplate:
                description: VmNamingTemplate is go template to generate VM names
                  based on Machine and VCDMachine CRs. Functions of Sprig library
                  are supported. See https://github.com/Masterminds/sprig Immutable
                  field. machine.Name is used as VM name when this field is empty.
                type: string
            type: object
          status:
            description: VCDMachineStatus defines the observed state of VCDMachine
            properties:
              addresses:
                description: Addresses contains the associated addresses for the docker
                  machine.
                items:
                  description: MachineAddress contains information for the node's
                    address.
                  properties:
                    address:
                      description: The machine address.
                      type: string
                    type:
                      description: Machine address type, one of Hostname, ExternalIP
                        or InternalIP.
                      type: string
                  required:
                  - address
                  - type
                  type: object
                type: array
              conditions:
                description: Conditions defines current service state of the DockerMachine.
                items:
                  description: Condition defines an observation of a Cluster API resource
                    operational state.
                  properties:
                    lastTransitionTime:
                      description: Last time the condition transitioned from one status
                        to another. This should be when the underlying condition changed.
                        If that is not known, then using the time when the API field
                        changed is acceptable.
                      format: date-time
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition. This field may be empty.
                      type: string
                    reason:
                      description: The reason for the condition's last transition
                        in CamelCase. The specific API may choose whether or not this
                        field is considered a guaranteed API. This field may not be
                        empty.
                      type: string
                    severity:
                      description: Severity provides an explicit classification of
                        Reason code, so the users or machines can immediately understand
                        the current situation and act accordingly. The Severity field
                        MUST be set only when Status=False.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of condition in CamelCase or in foo.example.com/CamelCase.
                        Many .condition.type values are consistent across resources
                        like Available, but because arbitrary conditions can be useful
                        (see .node.status.conditions), the ability to deconflict is
                        important.
                      type: string
                  required:
                  - lastTransitionTime
                  - status
                  - type
                  type: object
                type: array
              diskSize:
                anyOf:
                - type: integer
                - type: string
                description: DiskSize is the size, in bytes, of the disk for this
                  machine
                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                x-kubernetes-int-or-string: true
              nvidiaGpuEnabled:
                description: NvidiaGPUEnabled is true when a VM should be created
                  with the relevant binaries installed
                type: boolean
              placementPolicy:
                description: PlacementPolicy is the placement policy to be used on
                  this machine.
                type: string
              providerID:
                description: ProviderID will be the container name in ProviderID format
                  (vmware-cloud-director://<vm id>)
                type: string
              ready:
                description: Ready denotes that the machine (docker container) is
                  ready
                type: boolean
              sizingPolicy:
                description: SizingPolicy is the sizing policy to be used on this
                  machine.
                type: string
              template:
                description: Template is the path of the template OVA that is to be
                  used
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
